package com.xzc.therdlocal;

import java.util.Hashtable;
import java.util.Map;
import java.util.Random;

/**
 * @author 徐州城
 * @version 1.0
 */
public class ThreadLocal {

    public static final Map<String, Object> data = new Hashtable<>();
    private static Random random = new Random();


    public static class Task implements Runnable {
        @Override
        public void run() {
            //在Run方法中，随机生成一个变量（线程要关联的数据），然后以当前线程名为key保存到map中
            int i = random.nextInt(1000);//0-999
            String name = Thread.currentThread().getName();//获取当前线程名
            System.out.println("线程[" + name + "]生成的随机数是：" + i);
            data.put(name,i);

            try {
                Thread.sleep(5000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }

            //在Run方法结束之前，以当前线程名获取出数据并打印。查看是否可以取出操作
            Object o = data.get(name);
            System.out.println("在线程[" + name + "]快结束时取出关联的数据是：" + o);
        }
    }

    public static void main(String[] args) {
        for (int i = 0; i < 3; i++) {
            new Thread(new Task()).start();
         }
    }

}
